// 按需导入发送请求的函数
import { request } from '../../request/index.js'
// 默认导入的方式导入runtime.js文件
import regeneratorRuntime from '../../lib/runtime/runtime.js'
Page({
  data: {
    // 搜索到的商品数组
    goods: [],
    // 控制取消按钮是否显示
    isShowButton: false,
    // 用户在输入框中输入的值
    inputValue: ''
  },
  // 定义一个全局的定时器变量timer 初始值为0，值随便写
  timer: 0,
  // 当搜索输入框中的值发生改变的时候触发
  handleInput(e) {
    // 关闭上一个定时器
    clearTimeout(this.timer)
    console.log(e);
    // 获取到用户在输入框中输入的内容
    const { value } = e.detail
    // 如果用户输入的是空格就阻止代码向下执行
    if (!value.trim()) {
      // 用户在输入框里面没有输入值就置空goods数组；隐藏取消按钮
      this.setData({
        goods: [],
        isShowButton: false
      })
      return;
    }
    // 用户在输入框中输入了值 就显示取消按钮
    this.setData({
      isShowButton: true
    })
    // 关闭上一个定时器
    // clearTimeout(this.timer)
    // 开启定时器
    this.timer = setTimeout(() => {
      // 调用发送请求获取数据的函数
      this.getSearchGoodsList(value)
    }, 1000)

  },
  // 发送请求获取到搜索结果的函数
  async getSearchGoodsList(query) {
    const res = await request({ url: "/goods/qsearch", data: { query } })
    // console.log(res);
    // 把获取到的数据赋值到data中
    this.setData({
      goods: res
    })
  },
  // 当用户点击了取消按钮的时候触发
  handleCancel() {
    // 隐藏取消按钮 置空数组goods，清空输入框的值
    this.setData({
      isShowButton: false,
      goods: [],
      inputValue: ""
    })
  }

})